package com.taxshare.mybatis.pager;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.taxshare.mybatis.utils.DozerBeanUtil;

public class PageHelp {

	// 简单分页
	public static <T, E> IPage<E> siamplePage(IService<T> service, QueryWrapper<T> queryWrapper, PageInfoRequest page,
			Class<E> cls) {
		IPage<T> db = service.page(new Page(page.getCurrentPage(), page.getPageSize()), queryWrapper);
		return siamplePage(db, cls);
	}

	// 简单分页
	public static <T, E> IPage<E> siamplePage(IService<T> service, LambdaQueryWrapper<T> queryWrapper,
                                              PageInfoRequest page, Class<E> cls) {
		IPage<T> db = service.page(new Page(page.getCurrentPage(), page.getPageSize()), queryWrapper);
		return siamplePage(db, cls);
	}

	// 简单分页
	public static <T, E> IPage<E> siamplePage(IPage<T> db, Class<E> cls) {
		IPage<E> result = new Page<>();
		result.setRecords(DozerBeanUtil.mapList(db.getRecords(), cls));
		result.setCurrent(db.getCurrent());
		result.setTotal(db.getTotal());
		result.setPages(db.getPages());
		result.setSize(db.getSize());
		return result;
	}

}
